"""
@Author: 霍格沃兹测试开发学社-西西
@Desc: 更多测试开发技术探讨，请访问：https://ceshiren.com/t/topic/15860
"""
# key:value
mydict = {
"city":"深圳",
"name":"hurry" ,
"gender":"男" ,
"age":20,
}
print(f"学员的姓名：{mydict['name']}，性别：{mydict['gender']}，年龄：{mydict['age']}，所在城市：{mydict['city']}")

# 定义一个空的字典
a = {}
dc1 = dict()
print(a)
print(dc1)

dc2 = dict(name='霍格沃兹', course='测试开发')
print(dc2)


"""字典使用：访问元素"""
# 第一种访问元素的方法 字典名["key"]
dc = {"name": "Harry Potter", "age": 18}
# 1、访问存在的key
print(dc["name"])
print(dc["age"])

# 2、访问不存在的key，会报KeyError错误
# print(dc['hobby'])
# 第二种访问： get()
print(dc.get("hobby"))
print(dc.get("name"))

"""字典使用：操作元素"""
dc = {"name": "Harry Potter", "age": 18}
# 1、如果key 存在 就是修改操作
# 修改年龄，改为20
dc['age'] = 20
print(dc)

# key值不存在 ，就是新增
# 2、新增hobby字段
dc['hobby'] = 'Magic'
print(dc)


"""字典使用：嵌套字典"""
dc = {"name": "Harry Potter", "age": 18, "course": {"magic": 90, "python": 80}, "special":['English', 'computer']}
# 1、获取课程Magic的值
print(f"获取 course 字典里 Magic 的值 {dc['course']['magic']}")
print(f"通过get()方法获取  {   dc.get('course').get('magic')   }")

# 2、把python分数改成100分
dc['course']['python'] = 100
print(dc)


"""字典方法 keys()"""
dc = {"name": "Harry Potter", "age": 18}
keys = dc.keys()
print(type(keys), keys)

# 1、遍历查看所有的键
for key in keys:
    print(key)
#
# # 2、将视图对象转成列表
print(list(keys))


"""字典方法 values()"""
dc = {"name": "Harry Potter", "age": 18}
values = dc.values()
print(type(values), values)

# 1、遍历查看所有的值
for value in values:
    print(value)

# 2、将视图对象转成列表
print(list(values))


"""字典方法 items()"""
dc = {"name": "Harry Potter", "age": 18}
items = dc.items()
print(type(items), items)

a,b=1,2
# 1、遍历查看所有的项
for key,value in dc.items():
    print(key,value)
#
# # 2、将视图对象转成列表
# print(list(items))

# 更新字典
dc = {"name": "Harry Potter", "age": 18}
dc.update({"age": 20, "gender":"male"})
print(dc)
dc['name'] = '赫敏'
dc['country'] = "北京"
print(dc)


"""字典方法 pop()"""
dc = {"name": "Harry Potter", "age": 18}

# 1、弹出
# 删除并返回 value值
# item = dc.pop("age")
# print(dc, item)

# 2、删除不存在的key
dc.pop("hobby")  # 报错keyError